#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int g_val1;
int g_val2=100;
int g_val=200;

int main()
{
    pid_t id=fork();
    if(id==0)
    {
        int cnt=5;
        while(1)
        {
            printf("我是子进程：pid:%d,ppid:%d\n,g_val=%d,&g_val=%p\n",getpid(),getppid(),g_val,&g_val);
            sleep(1);
            cnt--;
            if(cnt==0)
            {
                g_val=500;
            }
        }
        //子进程
    }
    if(id>0)
    {
        while(1)
        {
            printf("我是父进程：pid:%d,ppid:%d,g_val=%d,&g_val=%p\n",getpid(),getppid(),g_val,&g_val);
            sleep(1);
        }
        //父进程
    }

    printf("\n");
    
//   printf("code addr:%p\n",main);
//   const char* str="hello linux!";
//   printf("read only string addr:%p\n",str);
//   printf("init global value addr:%p\n",&g_val2);
//   printf("uninit global value addr:%p\n",&g_val1);
//   int *p=(int*)malloc(100);
//   printf("heap addr:%p\n",p);
//   int s=0;
//   printf("stack addr:%p\n",&s);

    return 0;
}
